<?php
class RegistrosController extends AppController {

	var $name = 'Registros';
	var $uses = array('Registro','Problem','PeopleProblem','Practice','PeoplePractice','Person','Evolution','PeopleSign','Sign','Result','PeopleVademecum',
		'Turn','Recomendation','PeopleRecomendation','Adjunto','ClientsFormulario','Formulario','Ficha','Formularioscampo','Stateproblem','Tag','Typeindicacionmedicamento');
    function beforeFilter () {
        parent::beforeFilter();
    }



	function index($id_paciente = null, $filtros = null, $filtro_problema=0) {

		if(!$id_paciente){
			$registro_gral = $this->ObtenerRegistros(null, $filtros);
		}else{
			$registro_gral = $this->ObtenerRegistros($id_paciente, $filtros,$filtro_problema);
		}


		// Cargo el listado de formularios asociados al cliente
		$formularios = $this->ClientsFormulario->find('all', array(
							'conditions' => array(
												'ClientsFormulario.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
											),
							'fields' => array('ClientsFormulario.formulario_id','ClientsFormulario.id','Formulario.id', 'Formulario.name', 'Formulario.solo_uno'),
						));


		if(!empty($formularios)){

	        foreach($formularios as $f){

	       		$id_formulario = $f['Formulario']['id']; 

	        	if( $f['Formulario']['solo_uno'] ==1 ) {
	        		// Ya se completo ese Formulario para este paciente?
					$Existe = $this->Ficha->find('first', array(
									'conditions' => array(
														'Ficha.client_id'      => $this->Session->read('ClientesUsuarioLogueado.id'),
														'Ficha.person_id'      => $id_paciente,
														'Ficha.formulario_id'  => $id_formulario,
														'Ficha.staterecord_id' => 1
													),
								) );
					if(!$Existe){
						$lista_formularios[$id_formulario] = $f['Formulario']['name'];
					}

	        	} else {
					$lista_formularios[$id_formulario] = $f['Formulario']['name'];
	        	}

	        } // foreach $formularios 
	        
	        asort($lista_formularios);
		}else{
			$lista_formularios = array();
		}


        $this->set('lista_formularios',$lista_formularios);
		$arreglo_filtros = explode("|", $filtros); 
		if(in_array("4", $arreglo_filtros)){
				$pro_pacientes = $this->Person->PeopleProblem->find('all', array(
										'conditions' => array(
															'PeopleProblem.person_id' => $id_paciente,
														),
										'fields' => array('Problem.id','Problem.name'),
										'order' => array('Problem.name')
						) );
				$problemas_pacientes = array();
				if ($pro_pacientes){
					foreach($pro_pacientes as $pp){
						$problemas_pacientes[$pp['Problem']['id']] = $pp['Problem']['name'];
					
					}
				
				}
				$this->set('combo_problemas', $problemas_pacientes);
		}

		$this->set('doctores',$this->requestAction('/users/obtenerListadoDoctores/'.$this->Session->read('ClientesUsuarioLogueado.id')) );
		$this->set('registro_gral', $registro_gral);
		$this->set('id_paciente', $id_paciente);
		$this->set('id_cliente', $this->Session->read('ClientesUsuarioLogueado.id'));		
		$this->set('filtro_problema', $filtro_problema);
		$this->set('filtros', $filtros);
		$this->set('person', $this->Person->read(null, $id_paciente));		
		$this->layout = 'ajax';
	}


	function ObtenerRegistros($id_paciente = null, $filtros = null, $filtro_problema=0, $filtro_fecha='' ) {

		// Traigo los StateProblems
		$sp = $this->Stateproblem->find('all');
		foreach ($sp as $spp){
			$state_problems[$spp['Stateproblem']['id']] = $spp['Stateproblem']['name'];
		}
			
		// Traigo los Tags
		$t = $this->Tag->find('all');
		foreach ($t as $tt){
			$tags[$tt['Tag']['id']] = $tt['Tag']['name'];
		}

		// Traigo los Typeindicacionmedicamento
		$tm = $this->Typeindicacionmedicamento->find('all');
		foreach ($tm as $tmm){
			$Typeindicacionmedicamento[$tmm['Typeindicacionmedicamento']['id']] = $tmm['Typeindicacionmedicamento']['name'];
		}


		// Inicializo los Arreglos
		$peopleproblems    = array();
		$evolutions        = array();
		$peopleSigns       = array();
		$peoplepractice    = array();
		$results           = array();
		$peopleVademecums  = array();
		$turns             = array();
		$PeopleRecomendations = array();
		$Adjuntos          = array();
		$Fichas            = array();
		$RecetasMedicamentos = array();
		$OrdenesPracticas    = array();
		$AdjuntosAPI         = array();

		// Armo un arreglo con los filtros
		if($filtros){
			$arreglo_filtros = explode("|", $filtros); 
		}else{
			$arreglo_filtros = array();
		}

		// Si existe el Paciente, entonces tengo que generar el Historio del Paciente
		if($id_paciente){
			// Aplico los Filtros segun correspondan

			//------------------------------------------------------------------------ PROBLEMAS - 4
			if(empty($arreglo_filtros) OR in_array("4", $arreglo_filtros)){
				if(empty($arreglo_filtros)) { 

					if($filtro_problema == 0) {
						$peopleproblems = $this->PeopleProblem->find('all', array(
										'conditions' => array(
															'PeopleProblem.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
															'PeopleProblem.person_id' => $id_paciente,
															'PeopleProblem.ficha_id' => 0,
															'NOT' => array ('PeopleProblem.staterecord_id' => array('2','3'))
														),
						) );
						//pr($peopleproblems);

					} else {
						$peopleproblems = $this->PeopleProblem->find('all', array(
										'conditions' => array(
															'PeopleProblem.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
															'PeopleProblem.person_id' => $id_paciente,
															'PeopleProblem.problem_id' => $filtro_problema,
															'PeopleProblem.ficha_id' => 0,
															'NOT' => array ('PeopleProblem.staterecord_id' => array('2','3'))
														),
						) );

						$evolutions = $this->Evolution->find('all', array(
										'conditions' => array(
															'Evolution.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
															'Evolution.person_id' => $id_paciente,
															'Evolution.problem_id' => $filtro_problema,
															'Evolution.ficha_id' => 0,
															'NOT' => array ('Evolution.staterecord_id' => array('2','3'))
														),
						) );
					}

				} else {

					if($filtro_problema == 0) {
						$peopleproblems = $this->PeopleProblem->find('all', array(
										'conditions' => array(
															'PeopleProblem.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
															'PeopleProblem.person_id' => $id_paciente,
															'NOT' => array ('PeopleProblem.staterecord_id' => array('2','3'))
														),
						) );
						//pr($peopleproblems);

					} else {
						$peopleproblems = $this->PeopleProblem->find('all', array(
										'conditions' => array(
															'PeopleProblem.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
															'PeopleProblem.person_id' => $id_paciente,
															'PeopleProblem.problem_id' => $filtro_problema,
															'NOT' => array ('PeopleProblem.staterecord_id' => array('2','3'))
														),
						) );

						$evolutions = $this->Evolution->find('all', array(
										'conditions' => array(
															'Evolution.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
															'Evolution.person_id' => $id_paciente,
															'Evolution.problem_id' => $filtro_problema,
															'Evolution.ficha_id' => 0,
															'NOT' => array ('Evolution.staterecord_id' => array('2','3'))
														),
						) );
					}


				}	
			}

			//------------------------------------------------------------------------ EVOLUCIONES - 1
			if(empty($arreglo_filtros) OR in_array("1", $arreglo_filtros)){
				if(empty($arreglo_filtros)) { 
					$evolutions = $this->Evolution->find('all', array(
								'conditions' => array(
													'Evolution.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'Evolution.person_id' => $id_paciente,
													'Evolution.ficha_id' => 0,
													'NOT' => array ('Evolution.staterecord_id' => array('2','3'))
												),
										) );
				} else { 
					$evolutions = $this->Evolution->find('all', array(
								'conditions' => array(
													'Evolution.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'Evolution.person_id' => $id_paciente,
													'NOT' => array ('Evolution.staterecord_id' => array('2','3'))
												),
										) );
				}

			}

			//------------------------------------------------------------------------ SIGNOS VITALES - 6
			if(empty($arreglo_filtros) OR in_array("6", $arreglo_filtros)){
				if(empty($arreglo_filtros)) { 
					$peopleSigns = $this->PeopleSign->find('all', array(
								'conditions' => array(
													'PeopleSign.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'PeopleSign.person_id' => $id_paciente,
													'PeopleSign.ficha_id'  => 0,
													'NOT' => array ('PeopleSign.staterecord_id' => array('2','3'))
												),
										) );								
				} else { 
					$peopleSigns = $this->PeopleSign->find('all', array(
								'conditions' => array(
													'PeopleSign.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'PeopleSign.person_id' => $id_paciente,
													'NOT' => array ('PeopleSign.staterecord_id' => array('2','3'))
												),
										) );								
				}

			}


			//------------------------------------------------------------------------ PRACTICAS - 3
			if(empty($arreglo_filtros) OR in_array("3", $arreglo_filtros)){
				if(empty($arreglo_filtros)) { 
					$peoplepractice = $this->PeoplePractice->find('all', array(
								'conditions' => array(
													'PeoplePractice.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'PeoplePractice.person_id' => $id_paciente,
													'PeoplePractice.ficha_id'  => 0,
													'PeoplePractice.prescription_id'  => 0,
													'NOT' => array ('PeoplePractice.staterecord_id' => array('2','3'))
												),
										) );
				} else { 
					$peoplepractice = $this->PeoplePractice->find('all', array(
								'conditions' => array(
													'PeoplePractice.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'PeoplePractice.person_id' => $id_paciente,
													'PeoplePractice.prescription_id'  => 0,
													'NOT' => array ('PeoplePractice.staterecord_id' => array('2','3'))
												),
										) );
				}

			}

			//------------------------------------------------------------------------ RESULTADOS - 5
			if(empty($arreglo_filtros) OR in_array("5", $arreglo_filtros)){
				if(empty($arreglo_filtros)) { 
					$results = $this->Result->find('all', array(
								'conditions' => array(
													'Result.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'Result.person_id' => $id_paciente,
													'Result.ficha_id'  => 0,
													'NOT' => array ('Result.staterecord_id' => array('2','3'))
												),
								) );
				} else { 
					$results = $this->Result->find('all', array(
								'conditions' => array(
													'Result.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'Result.person_id' => $id_paciente,
													'NOT' => array ('Result.staterecord_id' => array('2','3'))
												),
								) );
				}

				$AdjuntosAPI = $this->Adjunto->find('all', array(
								'conditions' => array(
													'Adjunto.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'Adjunto.person_id' => $id_paciente,
													'Adjunto.prescription_id >' => 0,
													'Adjunto.staterecord_id' => '1'
												),
				) );

			}

			//------------------------------------------------------------------------ MEDICAMENTOS - 2
			if(empty($arreglo_filtros) OR in_array("2", $arreglo_filtros)){
			
				$this->PeopleVademecum->unbindModel(array('belongsTo' => array('Client')));            		
			
				if(empty($arreglo_filtros)) { 
					$peopleVademecums = $this->PeopleVademecum->find('all', array(
								'conditions' => array(
													'PeopleVademecum.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'PeopleVademecum.person_id' => $id_paciente,
													'PeopleVademecum.ficha_id'  => 0,
													'PeopleVademecum.prescription_id '  => 0,
													'NOT' => array ('PeopleVademecum.staterecord_id' => array('2','3'))
												),
					) );
				} else { 
					$peopleVademecums = $this->PeopleVademecum->find('all', array(
								'conditions' => array(
													'PeopleVademecum.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'PeopleVademecum.person_id' => $id_paciente,
													'PeopleVademecum.prescription_id '  => 0,
													'NOT' => array ('PeopleVademecum.staterecord_id' => array('2','3'))
												),
					) );
				}

			}

			//------------------------------------------------------------------------ TURNOS - 7
			if(empty($arreglo_filtros) OR in_array("7", $arreglo_filtros)){
				$turns = $this->Turn->find('all', array(
									'conditions' => array(
														'Turn.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
														'Turn.person_id' => $id_paciente,
														'NOT' => array ('Turn.staterecord_id' => array('2','3'))
													),
					) );
			}

			//------------------------------------------------------------------------ RECOMENDACIONES - 8
			if(empty($arreglo_filtros) OR in_array("8", $arreglo_filtros)){
				if(empty($arreglo_filtros)) { 
					$PeopleRecomendations = $this->PeopleRecomendation->find('all', array(
								'conditions' => array(
													'PeopleRecomendation.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'PeopleRecomendation.person_id' => $id_paciente,
													'PeopleRecomendation.ficha_id' => 0,
													'NOT' => array ('PeopleRecomendation.staterecord_id' => array('2','3'))
												),
					) );
				} else { 
					$PeopleRecomendations = $this->PeopleRecomendation->find('all', array(
									'conditions' => array(
														'PeopleRecomendation.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
														'PeopleRecomendation.person_id' => $id_paciente,
														'NOT' => array ('PeopleRecomendation.staterecord_id' => array('2','3'))
													),
					) );
				}

			}

			//------------------------------------------------------------------------ ADJUNTOS - 9
			if(empty($arreglo_filtros) OR in_array("9", $arreglo_filtros)){
				$Adjuntos = $this->Adjunto->find('all', array(
								'conditions' => array(
													'Adjunto.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'Adjunto.person_id' => $id_paciente,
													'Adjunto.prescription_id' => 0,
													'Adjunto.staterecord_id' => '1'
												),
				) );
				
			}

			//------------------------------------------------------------------------ FICHAS - 10
			if(empty($arreglo_filtros) OR in_array("10", $arreglo_filtros)){
				$Fichas = $this->Ficha->find('all', array(
								'conditions' => array(
													'Ficha.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'Ficha.person_id' => $id_paciente,
													'Ficha.staterecord_id' => '1'
												),
				) );
				
			}



			//------------------------------------------------------------------------ RECETAS DE MEDICAMENTOS - 11
			if(empty($arreglo_filtros) OR in_array("11", $arreglo_filtros)){
			
				$this->PeopleVademecum->unbindModel(array('belongsTo' => array('Client')));            		
			
				if(empty($arreglo_filtros)) { 
					$RecetasMedicamentos = $this->PeopleVademecum->find('all', array(
								'conditions' => array(
													'PeopleVademecum.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'PeopleVademecum.person_id' => $id_paciente,
													'PeopleVademecum.ficha_id'  => 0,
													'PeopleVademecum.prescription_id >'  => 0,
													'NOT' => array ('PeopleVademecum.staterecord_id' => array('2','3'))
												),
					) );
				} else { 
					$RecetasMedicamentos = $this->PeopleVademecum->find('all', array(
								'conditions' => array(
													'PeopleVademecum.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'PeopleVademecum.person_id' => $id_paciente,
													'PeopleVademecum.prescription_id >'  => 0,
													'NOT' => array ('PeopleVademecum.staterecord_id' => array('2','3'))
												),
					) );
				}

			}





			//------------------------------------------------------------------------ ORDENES DE PRACTICAS - 12
			if(empty($arreglo_filtros) OR in_array("12", $arreglo_filtros)){
				if(empty($arreglo_filtros)) { 
					$OrdenesPracticas = $this->PeoplePractice->find('all', array(
								'conditions' => array(
													'PeoplePractice.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'PeoplePractice.person_id' => $id_paciente,
													'PeoplePractice.ficha_id'  => 0,
													'PeoplePractice.prescription_id >'  => 0,
													'NOT' => array ('PeoplePractice.staterecord_id' => array('2','3'))
												),
										) );
				} else { 
					$OrdenesPracticas = $this->PeoplePractice->find('all', array(
								'conditions' => array(
													'PeoplePractice.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
													'PeoplePractice.person_id' => $id_paciente,
													'PeoplePractice.prescription_id >'  => 0,
													'NOT' => array ('PeoplePractice.staterecord_id' => array('2','3'))
												),
										) );
				}

			}



		
//	pr($results);		
			// Inicializo el Resultado
			$registro_gral = array();
			$contador_gral = 0;

			// Defino el TimeZone del Cliente para poder convertir las fechas
			$client_tz = new DateTimeZone($_SESSION['Client']['timezone']);

			// Armo el Resultado del Historico
			foreach($results as $registro){

				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['Result']['modified']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');

				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {
					$clase = "";
					$title = '';
					if(!empty($registro['Result']['valor'])){
						if($registro['Person']['sex_id']==1){
							$minimo = $registro['Practice']['normal_min_hombre'];
							$maximo = $registro['Practice']['normal_max_hombre'];
						} else {
							$minimo = $registro['Practice']['normal_min_mujer'];
							$maximo = $registro['Practice']['normal_max_mujer'];
						}
						
						if($minimo!=0 or $maximo !=0){
							if($registro['Result']['valor']<$minimo or $registro['Result']['valor']>$maximo){
								$clase="etiquetas_tags fdo_rojo";
								$title = "Min:$minimo - Máx:$maximo";
							}
						}
					}
					$registro_gral[$contador_gral]['id']            = $registro['Result']['id'];
					$registro_gral[$contador_gral]['modelo']        = 'Result';
					$registro_gral[$contador_gral]['inplace']       = 0;				
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;
					$registro_gral[$contador_gral]['actividad']     = 'Resultados';
					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					$registro_gral[$contador_gral]['detalle']       = "{$registro['Practice']['name']} -> <span class='$clase' title='$title'>{$registro['Result']['valor']}</span><br><small style='padding-left:20px;'>{$registro['Result']['conclusion']}</small>";
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Person']['id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];
					$contador_gral++;

				}
			}
			//pr($results);

			foreach($peopleSigns as $registro){

				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['PeopleSign']['fecha']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');


				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {
					$registro_gral[$contador_gral]['id']            = $registro['PeopleSign']['id'];			
					$registro_gral[$contador_gral]['modelo']        = 'PeopleSign';			
					$registro_gral[$contador_gral]['inplace']       = 0;						
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;
					$registro_gral[$contador_gral]['actividad']     = 'Signos Vitales';
					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					$registro_gral[$contador_gral]['detalle']       = $registro['Sign']['name']." ".$registro['PeopleSign']['valor']." ".$registro['Sign']['unidad'];
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Person']['id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];					
					$contador_gral++;
				}
			}

			foreach($peopleproblems as $registro){

				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['PeopleProblem']['fecha_origen']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');


				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {

					$registro_gral[$contador_gral]['id']            = $registro['PeopleProblem']['id'];
					$registro_gral[$contador_gral]['modelo']        = 'PeopleProblem';
					$registro_gral[$contador_gral]['inplace']       = 0;				
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;
					$registro_gral[$contador_gral]['actividad']     = 'Problema';
					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					$registro_gral[$contador_gral]['detalle']       = $registro['Problem']['name']." (".$registro['Stateproblem']['name'].") ";
					if (!empty($registro['Tag']['name'] )) {
						$registro_gral[$contador_gral]['detalle']  .= "<br>".$registro['Tag']['name'];
					}
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Person']['id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];					
					$contador_gral++;
				}
			}

			//pr($evolutions); die();
			$xfecha = '';
			foreach($evolutions as $registro){

				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['Evolution']['modified']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');


				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {
		
					if ($xfecha != $registro['Evolution']['fecha'] ) {
						$xfecha = $registro['Evolution']['fecha'];
						$registro_gral[$contador_gral]['id']            = $registro['Evolution']['id'];
						$registro_gral[$contador_gral]['modelo']        = 'Evolution';
						$registro_gral[$contador_gral]['inplace']       = 1;						
						$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;
						$registro_gral[$contador_gral]['actividad']     = 'Evolución → '.$registro['Problem']['name'];
						$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
						$registro_gral[$contador_gral]['detalle']       = $registro['Evolution']['description'];
						$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
						$registro_gral[$contador_gral]['id_paciente']   = $registro['Person']['id'];
						$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
						$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
						$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];						
						$contador_gral++;
					
					} else {
						$registro_gral[$contador_gral-1]['id']       = $registro_gral[$contador_gral-1]['id']."_".$registro['Evolution']['id'];
						$registro_gral[$contador_gral-1]['actividad'] = $registro_gral[$contador_gral-1]['actividad']." - ".$registro['Problem']['name'];
				
					}
				}	
			}

			//-----------------------------------------------------------------------------------------
			//                                                                                Practicas
			//-----------------------------------------------------------------------------------------
			foreach($peoplepractice as $registro){
				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['PeoplePractice']['fecha']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');

				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {
					$registro_gral[$contador_gral]['id']            = $registro['PeoplePractice']['id'];
					$registro_gral[$contador_gral]['modelo']        = 'PeoplePractice';
					$registro_gral[$contador_gral]['inplace']       = 0;							
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;
					$registro_gral[$contador_gral]['prescription_id'] = $registro['PeoplePractice']['prescription_id'];
					$registro_gral[$contador_gral]['actividad']     = __('Práctica', true);	
					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					$registro_gral[$contador_gral]['detalle']       = $registro['Practice']['name']."<br><small style='padding-left:20px;'>".$registro['PeoplePractice']['comments']."</small>";
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Person']['id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];					
					$contador_gral++;
				}
			}
			//-----------------------------------------------------------------------------------------
			//                                                                         FIN de Practicas
			//-----------------------------------------------------------------------------------------


			//-----------------------------------------------------------------------------------------
			//                                                                     Ordenes de Practicas
			//-----------------------------------------------------------------------------------------
			foreach($OrdenesPracticas as $registro){
				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['PeoplePractice']['fecha']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');

				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {
					$registro_gral[$contador_gral]['id']            = $registro['PeoplePractice']['id'];
					$registro_gral[$contador_gral]['modelo']        = 'PeoplePractice';
					$registro_gral[$contador_gral]['inplace']       = 0;							
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;
					$registro_gral[$contador_gral]['prescription_id'] = $registro['PeoplePractice']['prescription_id'];
					$registro_gral[$contador_gral]['tipo_prescripcion'] = 'practicas';
					$registro_gral[$contador_gral]['actividad']     = __('Prescripción indicaciones', true);	
					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					$registro_gral[$contador_gral]['detalle']       = $registro['Practice']['name']."<br><small style='padding-left:20px;'>".$registro['PeoplePractice']['comments']."</small>";
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Person']['id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];					
					$contador_gral++;
				}
			}
			//-----------------------------------------------------------------------------------------
			//                                                                  FIN Ordenes de Practica
			//-----------------------------------------------------------------------------------------
			



			//-----------------------------------------------------------------------------------------
			//                                                                             Medicamentos
			//-----------------------------------------------------------------------------------------
			foreach($peopleVademecums as $registro){
				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['PeopleVademecum']['created']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');


				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {

					$registro_gral[$contador_gral]['id']            = $registro['PeopleVademecum']['id'];
					$registro_gral[$contador_gral]['modelo']        = 'PeopleVademecum';
					$registro_gral[$contador_gral]['inplace']       = 0;								
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;

					$registro_gral[$contador_gral]['prescription_id'] = $registro['PeopleVademecum']['prescription_id'];
					if($registro['PeopleVademecum']['prescription_id']>0){
						$registro_gral[$contador_gral]['actividad']     = __('Prescripción medicamento', true);	
					} else {
						$registro_gral[$contador_gral]['actividad']     = __('Medicaciones', true);	
					}

					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Person']['id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];					
					
					if($registro['PeopleVademecum']['nombre_vademecum']=='vademecumparentals'){
						// pr($registro);
						//----------------------------------------------------------
						//                 Busco la solucion parenteral suministrada
						//----------------------------------------------------------
						$tabla = $registro['PeopleVademecum']['nombre_vademecum'];
						$sql = "select name from $tabla as nuevo_vademecum where id='{$registro['PeopleVademecum']['vademecum_id']}' LIMIT 1";
						$xxx = $this->Sign->query($sql);
						$medicamento = '';
						if($xxx){ $medicamento = $xxx[0]['nuevo_vademecum']['name']; }	

						
						//--------------------------------------volumen
						$this->loadModel('Volume');
						$xxx = $this->Volume->read(null,$registro['PeopleVademecum']['volumen_id']);
						$volumen = '';
						if($xxx){ $volumen = $xxx['Volume']['name']; }	
						
						//------------------------------------- Agregados
						if(	$registro['PeopleVademecum']['cloruro_sodio']>0
							or $registro['PeopleVademecum']['cloruro_potasio']>0
							or $registro['PeopleVademecum']['sulfato_magnesio']>0
							or !empty($registro['PeopleVademecum']['otro']) ){
							$agregados="<br><b>Agregados:</b><br>";
							if($registro['PeopleVademecum']['cloruro_sodio']>0) { $agregados.="&nbsp;&nbsp;&nbsp;Cloruro de Sodio 20%: {$registro['PeopleVademecum']['cloruro_sodio']}<br>"; }	
							if($registro['PeopleVademecum']['cloruro_potasio']>0) { $agregados.="&nbsp;&nbsp;&nbsp;Cloruro de Potasio 15 mEq%: {$registro['PeopleVademecum']['cloruro_potasio']}<br>"; }	
							if($registro['PeopleVademecum']['sulfato_magnesio']>0) { $agregados.="&nbsp;&nbsp;&nbsp;Sulfato de Magnesio 15%: {$registro['PeopleVademecum']['sulfato_magnesio']}<br>"; }	
							if( !empty($registro['PeopleVademecum']['otro']) ) { $agregados.="&nbsp;&nbsp;&nbsp;Otro: {$registro['PeopleVademecum']['otro']}<br>"; }	
						}

						//--------------------------------------Medio de Administracion
						$this->loadModel('Medio');
						$xxx = $this->Medio->read(null,$registro['PeopleVademecum']['medio_id']);
						$medio = '';
						if($xxx){ $medio = $xxx['Medio']['name']; }	

						//--------------------------------------Medio de Administracion
						$via_administracion = $registro['Via']['name'];
						
						$registro_gral[$contador_gral]['actividad']     = __('Solución Parenteral', true);
						$registro_gral[$contador_gral]['detalle']       = "<b>Indicación:</b><br>&nbsp;&nbsp;&nbsp;Solución: $medicamento - Volumen:$volumen";
						$registro_gral[$contador_gral]['detalle']      .= "$agregados";
						$registro_gral[$contador_gral]['detalle']      .= "<b>Administración:</b><br>";
						$registro_gral[$contador_gral]['detalle']      .= "&nbsp;&nbsp;&nbsp;<b>Medio:</b> $medio | <b>Vía:</b> $via_administracion";
						if(!empty($registro['PeopleVademecum']['observaciones'])){
							$registro_gral[$contador_gral]['detalle']      .= "<br><b>Observaciones:</b> {$registro['PeopleVademecum']['observaciones']}";
						}
						
					
					
					} else {
						if($registro['PeopleVademecum']['nombre_vademecum']=='vademecums'){
							$registro_gral[$contador_gral]['detalle']       = $registro['Vademecum']['name']." ".$registro['Vademecum']['presentacion'];
							$registro_gral[$contador_gral]['detalle']      .= " - ".$registro['PeopleVademecum']['cantidad_indicada']." ".$registro['Unidad']['agrupador']." vía ".$registro['Via']['name'];
							$registro_gral[$contador_gral]['detalle']      .= " - ".$registro['PeopleVademecum']['frecuencia']." veces por ".$registro['Frecuencia']['name'];
						} else {
							//------ No es el vademecum generico
							$vademecum_usado = $registro['PeopleVademecum']['nombre_vademecum'];
							$vademecum_id    = $registro['PeopleVademecum']['vademecum_id'];
							$sql = "select name, presentacion from $vademecum_usado as vademecum where id='$vademecum_id'";
							$xx = $this->Sign->query($sql);
							//pr($xx);
							$nombre_medicamento = $xx[0]['vademecum']['name'].' '.$xx[0]['vademecum']['presentacion'];
							$registro_gral[$contador_gral]['detalle']       = $nombre_medicamento;
							$registro_gral[$contador_gral]['detalle']      .= " - ".$registro['PeopleVademecum']['cantidad_indicada']." ".$registro['Unidad']['agrupador']." vía ".$registro['Via']['name'];
							$registro_gral[$contador_gral]['detalle']      .= " - ".$registro['PeopleVademecum']['frecuencia']." veces por ".$registro['Frecuencia']['name'];
						
						}
					}
					
					
					$contador_gral++;
				}
			}
			//-----------------------------------------------------------------------------------------
			//                                                                      FIN de Medicamentos
			//-----------------------------------------------------------------------------------------


			//-----------------------------------------------------------------------------------------
			//                                                                  Recetas de Medicamentos
			//-----------------------------------------------------------------------------------------
			foreach($RecetasMedicamentos as $registro){
				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['PeopleVademecum']['created']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');


				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {

					$registro_gral[$contador_gral]['id']            = $registro['PeopleVademecum']['id'];
					$registro_gral[$contador_gral]['modelo']        = 'PeopleVademecum';
					$registro_gral[$contador_gral]['inplace']       = 0;								
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;

					$registro_gral[$contador_gral]['prescription_id'] = $registro['PeopleVademecum']['prescription_id'];
					$registro_gral[$contador_gral]['tipo_prescripcion'] = 'medicamentos';
					$registro_gral[$contador_gral]['actividad']     = __('Prescripción medicamento', true);	
					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Person']['id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];					
					
					if($registro['PeopleVademecum']['nombre_vademecum']=='vademecums'){
						$registro_gral[$contador_gral]['detalle']       = $registro['Vademecum']['name']." ".$registro['Vademecum']['presentacion'];
						$registro_gral[$contador_gral]['detalle']      .= " - ".$registro['PeopleVademecum']['cantidad_indicada']." ".$registro['Unidad']['agrupador']." vía ".$registro['Via']['name'];
						$registro_gral[$contador_gral]['detalle']      .= " - ".$registro['PeopleVademecum']['frecuencia']." veces por ".$registro['Frecuencia']['name'];
					} else {
						//------ No es el vademecum generico
						$vademecum_usado = $registro['PeopleVademecum']['nombre_vademecum'];
						$vademecum_id    = $registro['PeopleVademecum']['vademecum_id'];
						$sql = "select name, presentacion from $vademecum_usado as vademecum where id='$vademecum_id'";
						$xx = $this->Sign->query($sql);
						//pr($xx);
						$nombre_medicamento = $xx[0]['vademecum']['name'].' '.$xx[0]['vademecum']['presentacion'];
						$registro_gral[$contador_gral]['detalle']       = $nombre_medicamento;
						$registro_gral[$contador_gral]['detalle']      .= " - ".$registro['PeopleVademecum']['cantidad_indicada']." ".$registro['Unidad']['agrupador']." vía ".$registro['Via']['name'];
						$registro_gral[$contador_gral]['detalle']      .= " - ".$registro['PeopleVademecum']['frecuencia']." veces por ".$registro['Frecuencia']['name'];
					}
					$contador_gral++;
				}
			}
			//-----------------------------------------------------------------------------------------
			//                                                              FIN Recetas de Medicamentos
			//-----------------------------------------------------------------------------------------




			foreach($turns as $registro){

				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['Turn']['modified']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');


				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {

					$registro_gral[$contador_gral]['id']            = $registro['Turn']['id'];
					$registro_gral[$contador_gral]['modelo']        = 'Turn';
					$registro_gral[$contador_gral]['inplace']       = 0;					
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;
					$registro_gral[$contador_gral]['actividad']     = 'Turno';
					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					$registro_gral[$contador_gral]['detalle']       = "Se asignó un Turno para el ".date('d M Y H:i', strtotime($registro['Turn']['fecha']));
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Person']['id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];					
					$contador_gral++;
				}
			}

			foreach($PeopleRecomendations as $registro){

				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['PeopleRecomendation']['modified']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');


				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {

					$registro_gral[$contador_gral]['id']            = $registro['PeopleRecomendation']['id'];
					$registro_gral[$contador_gral]['modelo']        = 'PeopleRecomendation';
					$registro_gral[$contador_gral]['inplace']       = 0;				
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;
					$registro_gral[$contador_gral]['actividad']     = 'Recomendación';
					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					$registro_gral[$contador_gral]['detalle']       = "Se asignó la Recomendación ".$registro['Recomendation']['name'];
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Person']['id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];					
					$contador_gral++;
				}
			}

			foreach($Adjuntos as $registro){

				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['Adjunto']['fecha']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');


				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {

					$registro_gral[$contador_gral]['id']            = $registro['Adjunto']['id'];
					$registro_gral[$contador_gral]['modelo']        = 'Adjunto';
					$registro_gral[$contador_gral]['inplace']       = 0;				
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;
					$registro_gral[$contador_gral]['actividad']     = 'Adjuntos';
					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					$registro_gral[$contador_gral]['detalle']       = $registro['Adjunto']['nombre'].": ".$registro['Adjunto']['comentario'];
					$registro_gral[$contador_gral]['adjunto']       = $registro['Adjunto']['adjunto'];
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Adjunto']['person_id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];					
					$contador_gral++;
				}
			}

			foreach($AdjuntosAPI as $registro){

				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['Adjunto']['fecha']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');


				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {

					$registro_gral[$contador_gral]['id']            = $registro['Adjunto']['id'];
					$registro_gral[$contador_gral]['modelo']        = 'Adjunto';
					$registro_gral[$contador_gral]['inplace']       = 0;				
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;
					$registro_gral[$contador_gral]['actividad']     = 'Resultados Adjuntos';
					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					$registro_gral[$contador_gral]['detalle']       = $registro['Adjunto']['nombre'].": ".$registro['Adjunto']['comentario'];
					$registro_gral[$contador_gral]['adjunto']       = $registro['Adjunto']['adjunto'];
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Adjunto']['person_id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];					
					$contador_gral++;
				}
			}



			foreach($Fichas as $registro){

				// Convierto el Registro de Fecha al TimeZone del Cliente
				$date = new DateTime($registro['Ficha']['created']);
				$date->setTimezone($client_tz);
				$reg_fecha =  $date->format('Y-m-d');
				$reg_fecha_completa =  $date->format('Y-m-d H:i:s');

				if( empty($filtro_fecha) or $filtro_fecha==$reg_fecha  ) {
					$registro_gral[$contador_gral]['id']            = $registro['Ficha']['id'];
					$registro_gral[$contador_gral]['modelo']        = 'Ficha';
					$registro_gral[$contador_gral]['inplace']       = 0;				
					$registro_gral[$contador_gral]['fecha']         = $reg_fecha_completa;
					$registro_gral[$contador_gral]['actividad']     = $registro['Formulario']['name'];
					$registro_gral[$contador_gral]['ico_actividad'] = '<img src="/images/1x1.gif">';
					
					$detalle = json_decode( $registro['Ficha']['detalle'], true );

			        foreach($detalle as $clave=>$valor){
						$this->Formularioscampo->unbindModel( array('belongsTo' => array('Formulario') ) );
						$detalle[$clave]['campo'] = $this->Formularioscampo->read(null,$valor['campo_id']);
	        		}

					


					$xdet = '';
					/*------------------
					6: Lista Simple
					7: Lista Multiple
					9: Lista Simple valores manuales
					10: Lista multiple valores manuales
					-------------------*/
					$campos_listas_simples = array(6, 9);
					$campos_listas_multiples = array(7, 10);



					foreach($detalle as $d){
					

						if(	isset($d['campo']['Campo']['es_negrita']) and $d['campo']['Campo']['es_negrita']==1){
							$abre_negrita='<strong>'; $cierra_negrita='</strong>';
						} else {
							$abre_negrita=''; $cierra_negrita='';
						}

						$clase = "";
						$title = "";
						
						if($d['campo_modelo_destino']=='practice_id' and isset($d['campo_modelo_destino_valor'])){
							//pr($d);
							//-----------------------------------------------------------------
							//           Es una practica, busco si el valor esta fuera de rango
							//-----------------------------------------------------------------
							$this->Practice->unbindModel( array('hasMany' => array('Result') ) );
							$Practica = $this->Practice->read(null,$d['campo_modelo_destino_valor']);
							if($registro['Person']['sex_id']==1){
								$minimo = $Practica['Practice']['normal_min_hombre'];
								$maximo = $Practica['Practice']['normal_max_hombre'];
							} else {
								$minimo = $Practica['Practice']['normal_min_mujer'];
								$maximo = $Practica['Practice']['normal_max_mujer'];
							}
							
							if($minimo!=0 or $maximo !=0){
								if($d['valor']<$minimo or $d['valor']>$maximo){
									$clase="etiquetas_tags fdo_rojo";
									$title = "Min:$minimo - Máx:$maximo";
								}
							}
						}
						
						if( in_array($d['tipo_campo'], $campos_listas_multiples) ) {

							$detalle_campos = json_decode( $d['campo']['Campo']['options_encode'], true);

							if( isset($d['campo_modelo_destino_valor']) and count($d['campo_modelo_destino_valor'])>0) {
							
								$xdet.="&nbsp;&nbsp;&nbsp; $abre_negrita {$d['label']} $cierra_negrita<br>";	
								$xdet.="<div class='muro_detalle_lista_multiple_manual'>";
								$xdet.="<ul>";

								foreach ($d['campo_modelo_destino_valor'] as $clave2 => $cmdv) { 
									if(isset($cmdv['estado']) and $cmdv['estado']=='on'){
									
										if($d['modelo_destino']=='PeopleProblem') {
											
											$xdet.="<li>$abre_negrita {$detalle_campos[$clave2]['nombre']} $cierra_negrita &rarr; {$state_problems[$cmdv['state_problem_id']]} &rarr; {$cmdv['fecha_problema']}</li>";

										} elseif($d['modelo_destino']=='PeopleVademecum') {

											if($cmdv['indicacion_id']==2) {
												//-Cronicas
												$xdet.="<li>$abre_negrita {$detalle_campos[$clave2]['nombre']} $cierra_negrita &rarr; {$Typeindicacionmedicamento[$cmdv['indicacion_id']]} desde {$cmdv['fecha_inicio']}</li>";
											} else {
												$xdet.="<li>$abre_negrita {$detalle_campos[$clave2]['nombre']} $cierra_negrita &rarr; {$Typeindicacionmedicamento[$cmdv['indicacion_id']]} del {$cmdv['fecha_inicio']} al {$cmdv['fecha_fin']}</li>";
											}
											
										} else {
											$xdet.="<li>$abre_negrita {$detalle_campos[$clave2]['nombre']} $cierra_negrita</li>";	
										}
										
									}
								} // endforeach
								$xdet.="</ul>"; //muro_detalle_lista_multiple_manual	
								$xdet.="</div>"; //muro_detalle_lista_multiple_manual	

							} // endif !empty($d['campo_modelo_destino_valor']

						} elseif($d['tipo_campo']==2 ) {
							//------------------------------------------------------------------------- Campo Tipo Booleano
							if($d['campo_modelo_destino_valor']>0) {
								$xdet.= "&nbsp;&nbsp;&nbsp; $abre_negrita {$d['label']} $cierra_negrita &rarr; SI<br>";
							} else {
								$xdet.= "&nbsp;&nbsp;&nbsp; $abre_negrita {$d['label']} $cierra_negrita &rarr; NO<br>";
							}
							
						} elseif($d['tipo_campo']==9 ) {
							//------------------------------------------------------------------------- Lista Simple Manual
							if( isset($d['campo_modelo_destino_valor']) and count($d['campo_modelo_destino_valor'])>0 and !empty($d['campo_modelo_destino_valor'])) {
							
								$detalle_campos = json_decode( $d['campo']['Campo']['options_encode'], true);

								$xdet.= "&nbsp;&nbsp;&nbsp; $abre_negrita {$d['label']} $cierra_negrita &rarr; {$detalle_campos[$d['campo_modelo_destino_valor']]['nombre']}<br>";
							} 
/*							
							else {
								$xdet.= "&nbsp;&nbsp;&nbsp; $abre_negrita {$d['label']} $cierra_negrita &rarr; <br>";
							}
*/
						} elseif($d['tipo_campo']==11 ) {
							//------------------------------------------------------------------------- Campo Buscador Simple
							if( isset($d['campo_modelo_destino_valor']) AND !empty($d['campo_modelo_destino_valor'])){
								if( $d['modelo_destino'] == 'PeopleVademecum' ) {
									$xdet.= "&nbsp;&nbsp;&nbsp; $abre_negrita {$d['label']}:<br><span style='margin-left:50px;'>{$d['nombre_medicamento']}</span><br>";	
								} elseif( $d['modelo_destino'] == 'PeopleProblem' ) { 
									$xdet.= "&nbsp;&nbsp;&nbsp; $abre_negrita {$d['label']}:<br><span style='margin-left:50px;'>{$d['nombre_problema']}</span><br>";								
								} elseif( $d['modelo_destino'] == 'PeoplePractice' ) { 
									$xdet.= "&nbsp;&nbsp;&nbsp; $abre_negrita {$d['label']}:<br><span style='margin-left:50px;'>{$d['nombre_practica']}</span><br>";								
								}
							}
							

						} elseif($d['tipo_campo']==13 ) {

							//------------------------------------------------------------------------- Campo Tipo Titulo
							//$xdet.="<b>{$d['label']}</b><br>";

						} elseif($d['tipo_campo']==5 ) {

							//------------------------------------------------------------------------- Campo Tipo Memo

							if (isset($d['valor']) AND !empty($d['valor']) ){
								$valor = $d['valor'];
								$xdet.= "&nbsp;&nbsp;&nbsp; $abre_negrita {$d['label']} $cierra_negrita &rarr; $valor <br>";
							}

						} else {
							if (isset($d['valor']) AND !empty($d['valor']) ){

								// Si el tipo de campo es formula, redondeo en dos decimales
								if($d['tipo_campo'] == 14){
									$valor = sprintf("%01.2f", $d['valor']);
								}else{
									$valor = $d['valor'];
								}
								$xdet.= "&nbsp;&nbsp;&nbsp; $abre_negrita {$d['label']} $cierra_negrita -> <span class='$clase' title='$title'>$valor</span><br>";
//							$registro_gral[$contador_gral]['detalle']       = "{$registro['Practice']['name']} -> <span class='$clase' title='$title'>{$registro['Result']['valor']}</span><br><small style='padding-left:20px;'>{$registro['Result']['conclusion']}</small>";								
							}
						}

					}


					$registro_gral[$contador_gral]['detalle']       = $xdet ;
					$registro_gral[$contador_gral]['paciente']      = $registro['Person']['full_name'];
					$registro_gral[$contador_gral]['id_paciente']   = $registro['Ficha']['person_id'];
					$registro_gral[$contador_gral]['profesional']   = $registro['User']['tratamiento']." ".substr($registro['User']['name'],0,1)." ".$registro['User']['lastname'];
					$registro_gral[$contador_gral]['firma_profesional']   = $registro['User']['foto_firma'];
					$registro_gral[$contador_gral]['matricula_profesional']   = $registro['User']['matricula'];					
					$contador_gral++;

				} //endif empty(fecha)

			} // end foreach($Fichas as $registro)
			
			$registro_gral = Set::sort($registro_gral, '{n}.fecha', 'desc');
			return $registro_gral;
		}


		return $registro_gral;
	}

	function actualizarRegistros(){
		Cache::delete('dashboard_'.$this->Session->read('ClientesUsuarioLogueado.id'));
		$this->autoRender=false;
	}

	
	
	function updateinplace(){
      //  pr($this->data);
		if ($this->data and !empty($this->data['evolution']) ) {
			$lista_id = explode('_',$this->data['id']);
			foreach($lista_id as $ids){
				$this->Evolution->id = $ids;
				$this->Evolution->saveField('description', $this->data['evolution']);
            }
			$this->set('description', $this->data['evolution']);
        }

	}
	
	
	function EliminarRegistro($id_paciente=0,$modelo='',$id_registro=0){
		if ($modelo=='Ficha'){
			$this->$modelo->id = $id_registro;
			$this->$modelo->saveField('staterecord_id', 2);

			$sql = "update people_problems set staterecord_id='2' where ficha_id='$id_registro'";
			$this->PeopleProblem->query($sql);
			$sql = "update evolutions set staterecord_id='2' where ficha_id='$id_registro'";
			$this->Evolution->query($sql);
			$sql = "update people_signs set staterecord_id='2' where ficha_id='$id_registro'";
			$this->PeopleSign->query($sql);
			$sql = "update people_practices set staterecord_id='2' where ficha_id='$id_registro'";
			$this->PeoplePractice->query($sql);
			$sql = "update results set staterecord_id='2' where ficha_id='$id_registro'";
			$this->Result->query($sql);
			$sql = "update people_vademecums set staterecord_id='2' where ficha_id='$id_registro'";
			$this->PeopleVademecum->query($sql);
			$sql = "update people_recomendations set staterecord_id='2' where ficha_id='$id_registro'";
			$this->PeopleRecomendation->query($sql);


		} elseif ($modelo=='Evolution'){
			$lista_id = explode(',',$id_registro);
			foreach($lista_id as $ids){
				$this->$modelo->id = $ids;
				$this->$modelo->saveField('staterecord_id', 2);
			}
		} else {
			$this->$modelo->id = $id_registro;
			$this->$modelo->saveField('staterecord_id', 2);
		}

		$this->Session->setFlash(__('Registro Eliminado', true));
		$this->redirect('/people/view/'.$id_paciente);
	}
	
	function mostraradjuntos($id_paciente=0,$id_registro=0){
		$this->autoRender=false;
		
		if ($id_paciente == 0 OR $id_registro==0) { die(); }

		$Adjunto = $this->Adjunto->find('first', array(
										'conditions' => array(
											'Adjunto.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
											'Adjunto.person_id' => $id_paciente,
											'Adjunto.id'        => $id_registro,
											'Adjunto.staterecord_id' => '1'
										),
									) );

		if (isset($Adjunto)) {
			$DestinoFinal    = ROOT.DS.APP_DIR.DS."webroot".DS."uploads";
			$file            = $DestinoFinal.DS.$Adjunto['Adjunto']['adjunto'];
			$extension       = end(explode('.',$Adjunto['Adjunto']['adjunto'])); 
			$campo_nombre    = str_replace(" ","_",$Adjunto['Adjunto']['nombre']);
			$nombre_sugerido = "{$Adjunto['Person']['lastname']}_{$Adjunto['Person']['name']}_{$Adjunto['Person']['name2']}_$campo_nombre.$extension";

			 if(!$file) {
				 // File doesn't exist, output error
		 		$this->Session->setFlash(__('Archivo Inexistente', true));
		 		$this->redirect('/people/view/'.$id_paciente);
				die();
			 } else {
				 // Read the file from disk
				header("Content-type: application/force-download"); 
				header("Cache-Control: public");
				header("Content-Description: File Transfer");
				header("Content-Disposition: attachment; filename='$nombre_sugerido'");
				header("Content-Transfer-Encoding: binary");
				readfile($file);
				die();
			 }			
		
		} else {
	 		$this->Session->setFlash(__('Archivo Inexistente', true));
	 		$this->redirect('/people/view/'.$id_paciente);
			die();
		}
		die();

	}
	
	
	
	function recetario($id_paciente=0, $prescription_id=0){
		
		$this->set('id_paciente', $id_paciente);

		$user_id   = $this->Session->read('Auth.User.id');
		$client_id = $this->Session->read('ClientesUsuarioLogueado.id');
		
		// Traigo los Typeindicacionmedicamento
		$this->loadModel('Typeindicacionmedicamento');
		$Typeindicacionmedicamento = $this->Typeindicacionmedicamento->find('all', array(
						'order' => array('Typeindicacionmedicamento.name')
		)) ;
		$this->set('Typeindicacionmedicamento', $Typeindicacionmedicamento);
		
		// Traigo la unidad indicada
		$this->loadModel('Unidad');
		$Unidad = $this->Unidad->find('list', array(
						'fields' => array('Unidad.id','Unidad.agrupador'),
						'order' => array('Unidad.agrupador')
		)) ;
		$this->set('Unidad', $Unidad);

		// Traigo las vias de administracion
		$this->loadModel('Via');
		$Vias = $this->Via->find('all', array(
						'order' => array('Via.name')
		));
		$this->set('Vias', $Vias);
		
		// Traigo las Frecuencias de administracion
		$this->loadModel('Frecuencia');
		$Frecuencias = $this->Frecuencia->find('all', array(
						'order' => array('Frecuencia.name')
		));
		$this->set('Frecuencias', $Frecuencias);
		
		//------------------------------------------------ Vademecums de este cliente
		$VademecumsCliente = $this->Session->read('VademecumsCliente');
		$this->set('VademecumsCliente',$VademecumsCliente);

		$PrescripcionOriginal = false;
		if($prescription_id>0){
			//---------------------------------------------------------------
			//              Duplica una receta, pues viene un prescription_id
			//---------------------------------------------------------------
			$this->loadModel('Prescription');
			$Prescription = $this->Prescription ->find('first', array(
								'conditions' => array(
									'Prescription.id' 		 => $prescription_id,
									'Prescription.person_id' => $id_paciente,
									'Prescription.user_id'   => $user_id,
									'Prescription.client_id' => $client_id,
									'Prescription.tipo_prescripcion' => 'medicamentos'
									)
							));
			if($Prescription){
				$this->loadModel('PeopleVademecum');
				$this->PeopleVademecum->unbindModel(array('belongsTo' => array('Person','Client','User','Staterecord','Vademecum')));            		
				$PrescripcionOriginal = $this->PeopleVademecum->find('all', array(
													'conditions' => array(
														'PeopleVademecum.prescription_id' => $prescription_id,
														'PeopleVademecum.staterecord_id' => 1
														)
													));
				foreach ($PrescripcionOriginal as $key => $value) {
					//------ Obtengo el nombre del medicamento segun el vademecum usado
					$vademecum_usado = $value['PeopleVademecum']['nombre_vademecum'];
					$vademecum_id    = $value['PeopleVademecum']['vademecum_id'];
					$sql = "select name, presentacion from $vademecum_usado as vademecum where id='$vademecum_id'";
					$xx = $this->Sign->query($sql);
					//pr($xx);
					$nombre_medicamento = $xx[0]['vademecum']['name'].' '.$xx[0]['vademecum']['presentacion'];
					$PrescripcionOriginal[$key]['PeopleVademecum']['nombre_medicamento'] = $nombre_medicamento;
					list($ano,$mes,$dia) = explode('-', $value['PeopleVademecum']['fecha_inicio']);
					$PrescripcionOriginal[$key]['PeopleVademecum']['fecha_inicio'] = $dia.'-'.$mes.'-'.$ano;
					list($ano,$mes,$dia) = explode('-', $value['PeopleVademecum']['fecha_fin']);
					$PrescripcionOriginal[$key]['PeopleVademecum']['fecha_fin'] = $dia.'-'.$mes.'-'.$ano;

				}
			}

		} // endif prescription_id>0
		//pr($PrescripcionOriginal);
		$this->set('PrescripcionOriginal', $PrescripcionOriginal);		
		
		
	}


	function indicaciones($id_paciente=0, $prescription_id=0){
		
		$this->set('id_paciente', $id_paciente);

		$user_id   = $this->Session->read('Auth.User.id');
		$client_id = $this->Session->read('ClientesUsuarioLogueado.id');
		
		$PrescripcionOriginal = false;
		if($prescription_id>0){
			//---------------------------------------------------------------
			//        Duplica una prescripcion, pues viene un prescription_id
			//---------------------------------------------------------------
			$this->loadModel('Prescription');
			$Prescription = $this->Prescription ->find('first', array(
								'conditions' => array(
									'Prescription.id' 		 => $prescription_id,
									'Prescription.person_id' => $id_paciente,
									'Prescription.user_id'   => $user_id,
									'Prescription.client_id' => $client_id,
									'Prescription.tipo_prescripcion' => 'practicas'
									)
							));
			if($Prescription){
				$this->loadModel('PeoplePractice');
				$this->PeoplePractice->unbindModel(array('belongsTo' => array('Person','Client','User','Staterecord')));            		
				$PrescripcionOriginal = $this->PeoplePractice->find('all', array(
													'conditions' => array(
														'PeoplePractice.prescription_id' => $prescription_id,
														'PeoplePractice.staterecord_id' => 1
														)
													));
				foreach ($PrescripcionOriginal as $key => $value) {
					list($ano,$mes,$dia) = explode('-', substr($value['PeoplePractice']['fecha'],0,10) );
					$PrescripcionOriginal[$key]['PeoplePractice']['fecha'] = $dia.'/'.$mes.'/'.$ano;
				}
			}

		} // endif prescription_id>0
		//pr($PrescripcionOriginal);
		$this->set('PrescripcionOriginal', $PrescripcionOriginal);		

	}


	
	function parenteral($id_paciente=0){
		
		$this->set('id_paciente', $id_paciente);
		
		
		$this->loadModel('Volume');
		$Volumen = $this->Volume->find('all', array( 'order' => array('Volume.name') )) ;
		$this->set('Volumen', $Volumen);
		
		
		// Traigo las vias de administracion
		$this->loadModel('Via');
		$Vias = $this->Via->find('all', array( 'order' => array('Via.name') ));
		$this->set('Vias', $Vias);
		
		// Traigo los Medios de Administracion
		$this->loadModel('Medio');
		$Medios = $this->Medio->find('all', array( 'order' => array('Medio.name') ));
		$this->set('Medios', $Medios);
	}
	
}
?>